package com.ruoyi.business.rpc;

import com.ruoyi.business.config.FeignConfig;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * 用户服务远程调用接口
 * 
 * 接口说明：
 * 1. 提供系统用户相关API的访问能力
 * 2. 所有接口直接返回对应的响应对象
 * 3. 异常由FeignErrorDecoder统一处理
 * 4. 配置由FeignConfig提供
 */
@FeignClient(
    name = "userService", 
    url = "${feign.user-service.url:http://localhost/dev-api/system}", 
    configuration = FeignConfig.class
)
public interface RemoteUserRpc {

    /**
     * 获取当前登录用户信息
     * 
     * 根据当前会话获取用户的详细信息，包括用户基本信息、角色和权限等
     * 
     * @return 包含用户信息的响应对象
     */
    @GetMapping(
        value = "/user/profile", 
        consumes = MediaType.APPLICATION_JSON_VALUE
    )
    R<SysUser> getSysUserByRpc();
}
